package reg.domain;

import java.sql.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import reg.data.JDBCDocumentoDAO;

public class DocumentoManager {

	public static DocumentoManager dm;
	private List<Documento> ld;

	
	private DocumentoManager() {
		
	}

	
	public static DocumentoManager getInstance() {
		if (dm == null)
			return new DocumentoManager();
		return dm;
	}

	
	public List<Documento> getTodosLosDocumentos() {
		ld = (new JDBCDocumentoDAO()).seleccionaTodosLosDocumentos();
		return ld;
	}

	
	public List<Documento> seleccionaDocumuentosPorTag(String tag) {
		return (new JDBCDocumentoDAO()).seleccionaDocumuentosPorTag(tag);
	}
	
	
	public List<Documento> getDocumentosDesde(Date fecha){
		return (new JDBCDocumentoDAO()).seleccionaDocumentosAPartirDeFecha(fecha) ;
	}
	
	public Integer getNumeroDocsDesde(Date fecha){
		return (new JDBCDocumentoDAO()).getNumeroDocsDesdeFecha(fecha);
	}
	
	public Map<String, Integer> nubeDeTags() {
		Map<String, Integer> res, cuenta;
		cuenta = (new JDBCDocumentoDAO()).getNubeDeTags();
		res = new HashMap<String, Integer>();
		for (String s : cuenta.keySet()) {
			Integer foo = cuenta.get(s);
			if (foo >= 1 && foo < 10) {
				res.put(s, 9);
			} else if (foo >= 10 && foo < 20) {
				res.put(s, 14);
			}else if(foo>=20 && foo<30)
			{
				res.put(s, 20);
			}else if (foo>=30 && foo<40)
			{
				res.put(s, 26);
			}else if(foo>=30 && foo<50)
			{
				res.put(s, 32);
			}else if(foo>=50)
			{
				res.put(s, 37);
			}

		}

		return res;
	}
	
	
}
